
#!/bin/bash 
# 
# redis 安装
#
# 需要使用file.sh 的 $redisDownUrl

echo '开始安装redis'

if [ $(awk -F= '/^NAME/{print $2}' /etc/os-release | tr -d '"' | grep -w "openEuler") ]; then 
    # 安装
    echo 'openEuler系统安装方式'
    # 创建redis相关目录
    mkdir /var/lib/redis
    mkdir /var/log/redis
    # 创建redis用户并设置权限
    groupadd redis
    useradd -M redis -g redis -s /sbin/nologin
    chown -R redis:redis /var/lib/redis
    chown -R redis:redis /var/log/redis
    # 通过yum安装
    yum -y install redis
    # 设置配置文件的权限
    chmod 644 /etc/redis.conf
elif [ $(awk -F= '/^NAME/{print $2}' /etc/os-release | tr -d '"' | grep -w "CentOS") ]; then 
    echo 'CentOS 系统安装方式'
	# 设置redis安装目录并进入
    mkdir /mnt/redis/
    cd /mnt/redis/
    # 下载安装包
    wget $redisDownUrl
    # 解压
    unzip redis-5.0.3.zip
    # 安装 make （适配 openEuler 22.03）
    yum -y install make
    # 安装 gcc （适配 openEuler 22.03）
    yum -y install gcc
    # 编译并将软件安装到指定的目录
    make && make install PREFIX=/usr/local/redis
    # 切换到服务所在目录
    cd /usr/local/redis/bin/
    # 配置自启动及后台运行服务
    cp /mnt/redis/redis.conf /usr/local/redis/bin/
    # 根据配置文件启动服务
    nohup ./redis-server redis.conf >> /root/redis.log 2>&1 &
    # 设置开机自启动
    touch /etc/systemd/system/redis.service
    echo '[Unit]'>>/etc/systemd/system/redis.service
    echo 'Description=redis-server'>>/etc/systemd/system/redis.service
    echo 'After=network.target'>>/etc/systemd/system/redis.service
    echo '[Service]'>>/etc/systemd/system/redis.service
    echo 'Type=forking'>>/etc/systemd/system/redis.service
    echo 'ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf'>>/etc/systemd/system/redis.service
    echo 'PrivateTmp=true'>>/etc/systemd/system/redis.service
    echo '[Install]'>>/etc/systemd/system/redis.service
    echo 'WantedBy=multi-user.target'>>/etc/systemd/system/redis.service
    systemctl daemon-reload
    systemctl start redis.service
    systemctl enable redis.service
else 
    # 不是以上几种系统，那就按照 openEuler 的方式安装
    echo '未发现当前是具体哪个系统，按照 openEuler 系统安装方式进行'
	# 安装
	yum -y install redis
fi

# 开机自启动
systemctl enable redis.service
# 重启redis，目的是启动，避免安装后还没启动
systemctl restart redis.service
echo 'redis安装完成'
sleep 3
#####end#########
